package dao;

import java.util.ArrayList;

import model.WeatherModel;

/**
 * Interface fuer WeatherDAO
 * 
 * @author Katharina Matei
 * @version 1.0.0
 */
public interface WeatherDAOInterface {

	/**
	 * Liest das aktuelle Wetter in City aus der DB
	 * 
	 * @param String cityID
	 * @return WeatherModel
	 * @throws DBException
	 */
	public WeatherModel getAktWeatherByCity(String cityID) throws DBException;

	/**
	 * Liest alle Wetter-Daten aus der DB
	 * 
	 * @return ArrayList<WeatherModel>
	 * @throws DBException
	 */
	public ArrayList<WeatherModel> getWeatherModelAll() throws DBException;

	/**
	 * Liest die Wetter-Daten in City fuer Zeitinterval (von-bis) aus der DB
	 * 
	 * @param String cityID, String von, String bis
	 * @return ArrayList<WeatherModel>
	 * @throws DBException
	 */
	public ArrayList<WeatherModel> getWeatherVonBis(String cityID, String von,
			String bis) throws DBException;

	/**
	 * Fuegt die Wetter-Daten in die DB ein
	 * 
	 * @param WeatherModel
	 * @throws DBException
	 */
	public void insert(WeatherModel wm) throws DBException;

	/**
	 * Liest alle Wetter-Daten in City aus der DB
	 * @param String cityID
	 * @return ArrayList<WeatherModel>
	 * @throws DBException
	 */
	public ArrayList<WeatherModel> getAllWeatherByCity(String cityID)
			throws DBException;

	/**
	 * Loeschen der Wetterdaten aus der Datenbank aelter als der uebergebene
	 * Timestamp
	 * 
	 * @param String timestamp
	 * @throws DBException
	 */
	public void delete(String timestamp) throws DBException;
}
